/**
 * 通用正则枚举工具
 *
 * @Author: yu_meng_cheng@163.com
 * @Date: 2019-07-26 15:04:56
 * @Last Modified by: yu_meng_cheng@163.com
 * @Last Modified time: 2019-08-28 14:30:37
 */

/* 合法uri*/
export function validateURL(textval) {
    const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
    return urlregex.test(textval)
}

/* 小写字母*/
export function validateLowerCase(str) {
    const reg = /^[a-z]+$/
    return reg.test(str)
}

/* 大写字母*/
export function validateUpperCase(str) {
    const reg = /^[A-Z]+$/
    return reg.test(str)
}

/* 大小写字母*/
export function validatAlphabets(str) {
    const reg = /^[A-Za-z]+$/
    return reg.test(str)
}

/* 银行卡号码 */
export function validateBankCard(str) {
    const reg = /([\d]{4})([\d]{4})([\d]{4})([\d]{4})([\d]{0,})?/
    return reg.test(str)
}

/* 只能是汉字和字母 */
export function validateNormalChar(str) {
    const reg = /^[\u4e00-\u9fa5_a-zA-Z]+$/
    return reg.test(str)
}

/* 邮箱 */
export function validateEmail(str) {
    const reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
    return reg.test(str)
}

// 数字类

/* >=0 && 保留两位小数 */
export function validateMoneyNum(str) {
    const reg = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^[0-9]\.\d{1,2}$)|(^(0){1}$)/
    return reg.test(str)
}

/* 正数(整数，小数（无限定小数个数）) */
export function validateIntegerNum(str) {
    // /(^[1-9]([0-9]+)?(\.[0-9]{1,})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
    // (^[1-9][0-9]*(\.\d{1,})?)|(0\.\d{1,})
    const reg = /^(0|[1-9][0-9]*)(\.\d+)?$/
    return reg.test(str)
}

/* 验证正整数+0  （请输入大于等于0的正整数）*/
export function validateIntegerEx0(str) {
    const reg = /^(0|[1-9][0-9]*)$/
    return reg.test(str)
}

/* 验证正整数  （请输入大于0的正整数）*/
export function validateInteger(str) {
    const reg = new RegExp(/^([1-9][0-9]*)$/)
    return reg.test(str)
}

/* 手机号码 */
export function validatePhone(str) {
    const reg = /^(\+\d+)?1[3456789]\d{9}$/
    return reg.test(str)
}

/* 身份证号码 */
export function validateIdCard(str) {
    const reg = /(^\d{18}$)|(^\d{15}$)|(^\d{17}(\d|X|x)$)/
    return reg.test(str)
}

/**
 * 数字字母混合类别
 */

/* 车架号 */
export function validateVIN(str) {
    const reg = /^[A-Za-z0-9]{17}$/
    return reg.test(str)
}

/* 车牌号 */
export function validatePlateNumber(str) {
    const reg = /^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$/
    return reg.test(str)
}
